﻿using System;
using Xlsx.ComponentModel.DataAnnotations;
using Xlsx.ComponentModel.Enums;

namespace Xslx.DataBinder.Tests.DataBinder.Extensions
{
    [XlsxBindable]
    public class Bindable
    {
        [XlsxNonBindable]
        public byte[] NonBindableProperty { get; set; }

        public string StringBindablePropertyWithoutAttrib { get; set; }
        public int NumericBindablePropertyWithoutAttrib { get; set; }
        public bool BoolBindablePropertyWithoutAttrib { get; set; }
        public DateTime DateTimeBindablePropertyWithoutAttrib { get; set; }
        public object ObjectBindablePropertyWithoutAttrib { get; set; }
        public DBNull NoneBindablePropertyWithoutAttrib { get; set; }

        [XlsxBindableProperty(XlsxDataType.String, "StringColumn")]
        public string StringBindableProperty { get; set; }

        [XlsxBindableProperty(XlsxDataType.Numeric, "NumericColumn", 1)]
        public int NumericBindableProperty { get; set; }

        [XlsxBindableProperty(XlsxDataType.Boolean, "BoolColumn", 2)]
        public bool BoolBindableProperty { get; set; }

        [XlsxBindableProperty(XlsxDataType.DateTime, "DateColumn", 3)]
        public DateTime DateTimeBindableProperty { get; set; }

        [XlsxBindableProperty(XlsxDataType.Object, "ObjectColumn", 4)]
        public object ObjectBindableProperty { get; set; }

        [XlsxBindableProperty(XlsxDataType.None, "NoneColumn", 5)]
        public DBNull NoneBindableProperty { get; set; }
    }
}
